package me.eleme.anubis.openapi.api.entity.order;

import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;

import java.util.List;


/**
 * @author 刘志永
 */
@Data
public class CreateOrderReq {
    /**
     * 外部订单号
     */
    @JSONField(name = "partner_order_code")
    private String partnerOrderCode;

    /**
     * 取货经度
     */
    @JSONField(name = "transport_longitude")
    private String transportLongitude;

    /**
     * 取货纬度
     */
    @JSONField(name = "transport_latitude")
    private String transportLatitude;

    /**
     * 取货点联系人电话
     */
    @JSONField(name = "transport_tel")
    private String transportTel;
    
    /**
     * 外部门店id
     */
    @JSONField(name = "out_shop_code")
    private String outShopCode;
    /**
     * 门店id
     */
    @JSONField(name = "chain_store_id")
    private String chainStoreId;
    /**
     * 商户订单来源（如 饿了么、美团等）
     */
    @JSONField(name = "order_source")
    private String orderSource;
    /**
     * 服务商品id
     */
    @JSONField(name = "service_goods_id")
    private String serviceGoodsId;
    /**
     * 基础商品id
     */
    @JSONField(name = "base_goods_id")
    private String baseGoodsId;
    /**
     * 订单类型（1:即时单，3:预约单）
     */
    @JSONField(name = "order_type")
    private Integer orderType;
    /**
     * 需要送达时间
     */
    @JSONField(name = "require_receive_time")
    private Long requireReceiveTime;
    /**
     * 下单时间
     */
    @JSONField(name = "order_add_time")
    private Long orderAddTime;
    /**
     * 是否使用优惠券
     */
    @JSONField(name = "use_coupon")
    private Integer useCoupon;
    /**
     * 预计出餐时间（毫秒)
     */
    @JSONField(name = "expect_fetch_time")
    private Long expectFetchTime;
    /**
     * 取货点地址描述
     */
    @JSONField(name = "transport_address")
    private String transportAddress;
    /**
     * 经纬度来源
     */
    @JSONField(name = "position_source")
    private Integer positionSource;
    /**
     * 收货人地址 文字描述
     */
    @JSONField(name = "receiver_address")
    private String receiverAddress;
    /**
     * 收货人经度
     */
    @JSONField(name = "receiver_longitude")
    private double receiverLongitude;
    /**
     * 收货人纬度
     */
    @JSONField(name = "receiver_latitude")
    private double receiverLatitude;
    /**
     * 订单商品总金额
     */
    @JSONField(name = "goods_total_amount_cent")
    private Long goodsTotalAmountCent;
    /**
     * 订单商品客户实际支付金额
     */
    @JSONField(name = "goods_actual_amount_cent")
    private Long goodsActualAmountCent;
    /**
     * 订单小费
     */
    @JSONField(name = "order_tip_amount_cent")
    private Long orderTipAmountCent;
    /**
     * 订单总重量
     */
    @JSONField(name = "goods_weight")
    private double goodsWeight;
    /**
     * 货物件数
     */
    @JSONField(name = "goods_count")
    private Integer goodsCount;
    /**
     * 货物明细
     */
    @JSONField(name = "goods_item_list")
    private List<OrderItemOpenapiDTO> goodsItemList;
    /**
     * 商家订单流水号
     */
    @JSONField(name = "serial_number")
    private String serialNumber;
    /**
     * 订单来源的 单号
     */
    @JSONField(name = "order_source_order_id")
    private String orderSourceOrderId;
    /**
     * 收货人姓名
     */
    @JSONField(name = "receiver_name")
    private String receiverName;
    /**
     * 收货人主要联系方式
     */
    @JSONField(name = "receiver_primary_phone")
    private String receiverPrimaryPhone;
    /**
     * 收货人备用联系方式
     */
    @JSONField(name = "receiver_second_phone")
    private String receiverSecondPhone;
    /**
     * 分机号
     */
    @JSONField(name = "customer_ext_tel")
    private String customerExtTel;
    /**
     * 用户备注
     */
    @JSONField(name = "order_remark")
    private String orderRemark;
    /**
     * 预询后下单标识
     */
    @JSONField(name = "pre_create_order_t_index_id")
    private String preCreateOrderTIndexId;
    /**
     * 优惠券id
     */
    @JSONField(name = "warehouse_id")
    private String warehouseId;
    /**
     * 优惠后配送费总价格(含入参小费金额)  入单实际价格 取自预下单接口出参同名字段!!!
     */
    @JSONField(name = "actual_delivery_amount_cent")
    private String actualDeliveryAmountCent;
    /**
     * 核销码（贵品服务必填）
     */
    @JSONField(name = "write_off_code")
    private String writeOffCode;
    /**
     * 取消码（贵品服务必填）
     */
    @JSONField(name = "cancel_code")
    private String cancelCode;
    /**
     * 取餐码
     */
    @JSONField(name = "fetch_code")
    private String fetchCode;
}
